home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DS-CD ROM 2 1993 August
/
DS CD-ROM 2.Ausgabe (August 1993).iso
/
programm
/
ds0257
/
doc.exe
/
PARMS.DOC
< prev
next >
Wrap
Text File
|
1992-02-21
|
5KB
|
131 lines
─────────────────────────────────────────────────────────────────────────────
Dokumentation zur Datei: PARMS.INC
─────────────────────────────────────────────────────────────────────────────
PARMS.INC - Routinen zur Ermittlung von Kommandozeilen-Parametern
(für den Assembler A86)
(c) Bernd Schemmer 1990 - 1992
Letzter Update: 02.02.1992
■ Beschreibung:
---------------
Als Trenner für die Parameter werden die Zeichen
'-', '/', Tabulatoren und das Leerzeichen
angesehen. Ein CR (ASCII-Code 0Dh) wird als Ende der Parameterzeile
gewertet.
Beispiel:
Die Parameterzeile
11-22/33//44--55-/-66 77 88
wird folgendermaßen │ │ │ ││ ││ │││ │ │
ausgewertet: │ │ │ ││ ││ │││ │ │
│ │ │ ││ ││ │││ │ │
Anzahl Parameter: 12 │ │ │ ││ ││ │││ │ │
Inhalt der Parameter: │ │ │ ││ ││ │││ │ │
Parameter 1: 11 ───┘ │ │ ││ ││ │││ │ │
Parameter 2: -22 ─────┘ │ ││ ││ │││ │ │
Parameter 3: /33 ────────┘ ││ ││ │││ │ │
Parameter 4: / ───────────┘│ ││ │││ │ │
Parameter 5: /44 ────────────┘ ││ │││ │ │
Parameter 6: - ───────────────┘│ │││ │ │
Parameter 7: -55 ────────────────┘ │││ │ │
Parameter 8: - ───────────────────┘││ │ │
Parameter 9: / ────────────────────┘│ │ │
Parameter 10: -66 ─────────────────────┘ │ │
Parameter 11: 77 ──────────────────────────┘ │
Parameter 12: 88 ──────────────────────────────┘
Falls ein oder mehrere Trennzeichen in einem Parameter übernommen
werden soll, muß der Parameter in Anführungstriche gesetzt werden.
Möglich sind hierfür die Zeichen ' (normales Anführungszeichen),
` (umgekehrtes Anführungszeichen) und " (doppelte Anführungszeichen).
ALLE Zeichen zwischen zwei gleichen Anführungsstrichen werden als
EIN Parameter gewertet. Die einzige Ausnahme hiervon ist das Zeichen
mit dem ASCII-Code 0Dh (= CR) Dieses wird IMMER als Ende der Para-
meterzeile angesehen.
Die Anführungstriche zur Klammerung eines Parameters werden NICHT
mit übergeben. Alle möglichen Anführungszeichen können auch gemischt
in einer Parameterzeile vorkommen.
Achtung: Dadurch sind auch leere Strings als Parameter möglich!!
weitere Beispiele:
Parameter-Zeile --- wird ausgewertet zu: ----------------------
│ Parameter │ Parameter │ Parameter │ Parameter
│ 1 │ 2 │ 3 │ 4
─────────────────┼────────────┼───────────┼───────────┼─────────
4 -5 --6 │ 4 │ -5 │ - │ -6
4 -5 '--6' │ 4 │ -5 │ --6 │
'"45' `a a` │ "45 │ a a │ │
'1 2 3 4 5 │ 1 2 3 4 5 │ │ │
"a'456 'a" '' │ a'456 'a │(leerer │ │
│ │ String!) │ │
Die Parameter werden intern gespeichert, d.h. nach einem Aufruf
einer Routine aus dieser Datei können ohne Verlust der Parameter
auch Funktionen, die die voreingestellte DTA bei PSP:0080h benutzen,
aufgerufen werden.
Bei der Behandlung der Anführungsstriche ist die Behandlung dieser
durch den aktuellen Kommando-Prozessor zu beachten!
(gilt vor allen für den Kommando-Prozessor 4DOS!)
■ Variablen:
------------
SaveParams - String, Original-Parameterzeile
(erst nach min. einem Aufruf einer Routine
aus dieser Datei belegt, READ ONLY!)
■ Routinen:
-----------
ParamStr - Liefert den n-ten Parameter als String mit
Längenbyte
ParamCount - Liefert die Anzahl der Parameter
■ EQU-Anweisungen für die Trennzeichen (Byte)
CR EQU 0Dh
TAB EQU 09h
BLANK EQU ' '
Die beiden folgenden Trennzeichen können vom Programm umdefiniert werden!
ParmTrenner1 EQU '/'
ParmTrenner2 EQU '-'
----------------------------
ParamStr
Funktion: Ermitteln des Parameters mit der Nummer in AL
Eingabe: AL = Nummer des Parameters (Zählung beginnt bei 1)
ES:DI -> Puffer für den Parameter
Ausgabe: Puffer bei ES:DI enthält den Parameter (incl. Längen-Byte)
falls vorhanden oder aber das Längen-Byte des Strings ist
auf 0 gesetzt.
ZF = 0 ->> Parameter ermittelt
ZF = 1 ->> Parameter nicht vorhanden
Bes.: Falls als Nummer 0 angegeben wird, so wird der erste
Parameter zurückgegeben.
AX wird nicht verändert.
----------------------------
ParamCount
Funktion: Ermitteln der Anzahl der übergebenen Parameter
Ausgabe: AL = Anzahl der Parameter